<!DOCTYPE html>
<html>
  <head>
    <title>Drag and drop with middle click</title>
    <style type="text/css">
div {
  width: 100px;
  height: 100px;
  background: orange;
  float: left;
}
div + div {
  background: blue;
}
div + div + div {
  background: fuchsia;
}
ol {
  clear: left;
}
    </style>
    <script type="text/javascript">
window.onload = function () {
  document.getElementsByTagName('div')[0].ondragstart = function (e) {
    e.dataTransfer.effectAllowed = 'copy';
    e.dataTransfer.setData('text','dummy text');
  };
};
    </script>
  </head>
  <body>
    <div draggable="true"></div>
    <div></div>
    <div></div>
    <noscript><p>Enable JavaScript and reload</p></noscript>
    <ol>
      <li>Drag the orange square over the blue square.</li>
      <li>Without releasing the drag, click the middle mouse button.</li>
      <li>If the platform's normal behaviour is to cancel a drag (eg. Windows and Unix+KDE), then the drag should be cancelled;<ul>
        <li>The drag placeholder should disappear, and the cursor should return to the normal mouse cursor.</li>
        <li>Move the mouse over the pink square and release the drag. The mouse cursor should remain the normal mouse cursor.</li>
      </ul></li>
      <li>If the platform's normal behaviour is not to cancel a drag (eg. Mac and Unix+Gnome), then the drag should not be cancelled;<ul>
        <li>The drag placeholder should not disappear, and the cursor should be the no-drop cursor.</li>
        <li>Move the mouse over the pink square and release the drag. The drag placeholder should disappear, and the cursor should return to the normal mouse cursor.</li>
      </ul></li>
      <li>Fail in either case if an inappropriate middle click function begins (eg. paste-and-go).</li>
    </ol>
  </body>
</html>
